package com.cloudkinto.service.order.vo.bigcommerce;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@NoArgsConstructor
@Data
public class OrderBigComShippingAddressEntity {
    @JsonProperty("id")
    private Long id;
    @JsonProperty("order_id")
    private Long orderId;
    @JsonProperty("first_name")
    private String firstName;
    @JsonProperty("last_name")
    private String lastName;
    @JsonProperty("company")
    private String company;
    @JsonProperty("street_1")
    private String street1;
    @JsonProperty("street_2")
    private String street2;
    @JsonProperty("city")
    private String city;
    @JsonProperty("zip")
    private String zip;
    @JsonProperty("country")
    private String country;
    @JsonProperty("country_iso2")
    private String countryIso2;
    @JsonProperty("state")
    private String state;
    @JsonProperty("email")
    private String email;
    @JsonProperty("phone")
    private String phone;
    @JsonProperty("items_total")
    private Integer itemsTotal;
    @JsonProperty("items_shipped")
    private Integer itemsShipped;
    @JsonProperty("shipping_method")
    private String shippingMethod;
    @JsonProperty("base_cost")
    private String baseCost;
    @JsonProperty("cost_ex_tax")
    private String costExTax;
    @JsonProperty("cost_inc_tax")
    private String costIncTax;
    @JsonProperty("cost_tax")
    private String costTax;
    @JsonProperty("cost_tax_class_id")
    private Integer costTaxClassId;
    @JsonProperty("base_handling_cost")
    private String baseHandlingCost;
    @JsonProperty("handling_cost_ex_tax")
    private String handlingCostExTax;
    @JsonProperty("handling_cost_inc_tax")
    private String handlingCostIncTax;
    @JsonProperty("handling_cost_tax")
    private String handlingCostTax;
    @JsonProperty("handling_cost_tax_class_id")
    private Integer handlingCostTaxClassId;
    @JsonProperty("shipping_zone_id")
    private Integer shippingZoneId;
    @JsonProperty("shipping_zone_name")
    private String shippingZoneName;
    @JsonProperty("shipping_quotes")
    private ShippingQuotesDTO shippingQuotes;
    @JsonProperty("form_fields")
    private List<?> formFields;

    @NoArgsConstructor
    @Data
    public static class ShippingQuotesDTO {
        @JsonProperty("url")
        private String url;
        @JsonProperty("resource")
        private String resource;
    }
}
